package cn.lx.log.core.annotation;

import java.lang.annotation.*;


@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface AutoLog {
    /**
     * 是否打印追踪ID
     * @return
     */
    boolean printTraceID() default true;

    /**
     * 是否打印请求时间
     * @return
     */
    boolean prentRequestTime() default  true;

    /**
     * 是否打印请求URL
     * @return
     */
    boolean printRequestUrl() default  true;

    /**
     * 是否打印请求URI
     * @return
     */
    boolean printRequestUri() default  true;

    /**
     * 是否打印请求方式
     * @return
     */
    boolean printRequestMethod() default  true;

    /**
     * 是否打印请求IP
     * @return
     */
    boolean printClientIP() default  true;

    /**
     * 是否打印请求类
     * @return
     */
    boolean clazz() default  true;

    /**
     * 是否打印请求方法
     * @return
     */
    boolean classMethod() default  true;

    /**
     * 是否打印请求参数
     * @return
     */
    boolean classRequestParams() default  true;

    /**
     * 是否打印请求耗时
     * @return
     */
    boolean timeConsuming() default  true;

    /**
     * 是否打印请求目标
     * @return
     */
    boolean callFrom() default  true;

    /**
     * 慢请求执行阈值
     * @return
     */
    long slowThresholdMills() default  -1;

}
